package com.rain.rainspringboot3.encryption.entity;

import cn.hutool.core.annotation.Alias;

import com.rain.rainspringboot3.desensitize.core.regex.annotation.EmailDesensitize;
import com.rain.rainspringboot3.desensitize.core.slider.annotation.IdCardDesensitize;
import com.rain.rainspringboot3.encryption.annotation.EncryptField;
import com.rain.rainspringboot3.encryption.enums.DataType;
import lombok.Data;

/**
 * 用户视图对象
 * 包含脱敏后的敏感字段
 */
@Data
public class UserVO {
    
    /**
     * 用户ID
     */
    private Long id;
    
    /**
     * 用户名
     */
    private String username;
    
    /**
     * 手机号（脱敏显示）
     */
    @Alias("phone")
    @EncryptField(type = DataType.PHONE)
    private String phone;
    
    /**
     * 身份证号（脱敏显示）
     */
    @Alias("idCard")
    @IdCardDesensitize
    @EncryptField(type = DataType.ID_CARD)
    private String idCard;
    
    /**
     * 邮箱（脱敏显示）
     */
    @EmailDesensitize
    @EncryptField(type = DataType.EMAIL)
    private String email;
    
    /**
     * 创建时间
     */
    private String createTime;
    

}